const App = getApp()
const db = wx.cloud.database()
const _ = db.command
let that
Page({

  /**
   * 页面的初始数据
   */
  data: {
    value: '',
    myclass: [],
    searchMsg: 0,
    bgIndex: 0,
    activeClass: ""
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    that = this
    let getopenid = App.cache.getOpenID()
    // 获取用户信息
    let UserInfo = App.cache.getUserInfo()
    console.log('获取用户信息:', UserInfo);
    delete UserInfo._id
    this.setData({
      UserInfo,
      getopenid
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  // 弹窗
  showModal(e) {
    console.log(e);
    this.setData({
      modalName: e.currentTarget.dataset.target,
      activeClass: e.currentTarget.dataset.activeclass
    })
  },
  // 关闭弹窗
  hideModal(e) {
    this.setData({
      modalName: null,
      activeClass: ""
    })
  },
  // 监听搜索内容
  onChange(e) {
    console.log('搜索框的值', e.detail);
    if (e.detail == '') {
      this.setData({
        searchMsg: 0,
      });
    }
    this.setData({
      value: e.detail,
    });
  },
  // 搜索班级
  onSearch() {
    let myclassId = Number(that.data.value)
    let className = String(that.data.value)
    console.log('myclassId:', myclassId, 'className:', className);
    //  班级颜色
    let bgIndex = that.data.bgIndex
    console.log(typeof myclassId);
    console.log(typeof className);
    if (myclassId == null || className == '') {
      App.toast.showToast('请输入班级号', 'error')
      return false
    }
    App.toast.showLoading('卖力搜索中...')
    db.collection('myclass').where(_.or([{
      myclassId: myclassId
    }, {
      name: className
    }])).get({
      success: function (res) {
        console.log('搜索班级', res.data)
        let list = res.data
        // 是否有搜索的结果
        if (list == "") {
          App.toast.hideLoading()
          that.setData({
            searchMsg: 1
          })
          return false
        } else {
          that.setData({
            searchMsg: 0
          })
        }
        let arr = []
        for (let i = 0; i < list.length; i++) {
          arr.push(list[i])
        }
        // 每搜索一次就换一个颜色, 第十六次重置
        if (bgIndex == 16) {
          that.setData({
            bgIndex: 1
          })
        } else {
          that.setData({
            bgIndex: bgIndex + 1
          })
        }
        that.setData({
          myclass: arr,
        })
        console.log('现在颜色下标是:', that.data.bgIndex);
        App.toast.hideLoading()

      }
    })
  },

  // 添加班级
  addmyclass(e) {
    that.setData({
      modalName: null
    })
    App.toast.showLoading('资质考核中...')
    let UserInfo = that.data.UserInfo
    let activeClass = that.data.activeClass
    console.log('_id', activeClass);
    db.collection('myclass').where(_.and([{
          _id: activeClass._id
        },
        {
          list: _.elemMatch({
            account: _.eq(UserInfo.account)
          })
        }
      ]))
      .get({
        success: function (res) {
          console.log('有这个人吗', res.data)
          if (!res.data.length) {
            UserInfo.permissions = false
            console.log('加了吗', UserInfo);
            db.collection('myclass').doc(activeClass._id).update({
              data: {
                list: _.push(UserInfo)
              },
              success: async function (res) {
                console.log(res)
                // 同时将这名成员添加到班级社区
                let ChatId = 'chat' + activeClass.myclassId
                await db.collection('chat-msg').where({
                  ChatCommunityId: ChatId
                }).update({
                  data: {
                    members: _.push(UserInfo)
                  },
                  success: function (res) {
                    console.log('加入成功', res);
                  }
                })
                // 同时将这名成员添加课程成员
                await db.collection('course').where({
                  'class.classId': activeClass.myclassId
                }).update({
                  data: {
                    courseMember: _.push(UserInfo)
                  },
                  success: function (res) {
                    console.log('加入成功', res);
                    App.toast.hideLoading()
                    App.toast.showToast('恭喜你加入成功', 'success')
                    setTimeout(() => {
                      App.route.relBack('/pages/myclass/list/index')
                    }, 1500)
                  }
                })
              }
            })

          } else {
            App.toast.showToast('你已在本班级')
          }
        }
      })
  }

})